package com.sunwayworld.basemodule.rm.equipment.equiptfileacq.exector;

import com.hierynomus.smbj.session.Session;
import com.sunwayworld.basemodule.rm.equipment.equiptfileacq.bean.LimsEquiptFileAcqBean;
import com.sunwayworld.basemodule.rm.equipment.equiptfileacq.bean.LimsEquiptFileAcqConfigBean;
import com.sunwayworld.framework.exception.InvalidDataException;
import jcifs.smb.SmbFile;
import org.apache.commons.net.ftp.FTPClient;
import sun.net.ftp.FtpClient;

import java.util.List;

public interface FileAcqExector {

    default List<LimsEquiptFileAcqBean> acqFileFromFtp(FTPClient ftpClient, LimsEquiptFileAcqConfigBean equiptFileAcqConfigBean){
        throw new InvalidDataException(this.getClass().getName()+" does not implement \"acqFileFromFtp\" method");
    }

    default List<LimsEquiptFileAcqBean> acqFileFromShareDocV1(SmbFile smbFile, LimsEquiptFileAcqConfigBean equiptFileAcqConfigBean){
        throw new InvalidDataException(this.getClass().getName()+" does not implement \"acqFileFromShareDocV1\" method");
    }

    default List<LimsEquiptFileAcqBean> acqFileFromShareDocV23(Session session, LimsEquiptFileAcqConfigBean equiptFileAcqConfigBean){
        throw new InvalidDataException(this.getClass().getName()+" does not implement \"acqFileFromShareDocV23\" method");
    }

    default void analysisFiles(List<LimsEquiptFileAcqBean> equiptFileAcqBeans){
        throw new InvalidDataException(this.getClass().getName()+" does not implement \"analysisFiles\" method");
    }
}
